import Vue from 'vue'
import Vuex from 'vuex'
import {getItem,setItem} from '@/utils/storage'
Vue.use(Vuex)

const TOKEN_KEY='TOUTIAO_USER'

export default new Vuex.Store({
  state: {
    //一个对象 用来存储当前登录用户信息(token等数据)
    //要还原成对象
    // 其他组件使用时 找容器拿 而不是找本地存储
    // user:JSON.parse(window.localStorage.getItem(TOKEN_KEY))
    user:getItem(TOKEN_KEY)
    // user:null
  },
  getters: {
  },
  mutations: {
    // 不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation
    setUser(state, data) {
      // 登录成功，将 Token 存储到 Vuex 容器中
      // 获取方便
      // 响应式
      state.user = data
      // 为了持久化，防止刷新数据丢失,还需要把 Token 放到本地存储
      //本地存储只能存字符串 而data为对象
      // window.localStorage.setItem(TOKEN_KEY,JSON.stringify(state.user))
      setItem(TOKEN_KEY,state.user)
    }
  },
  actions: {
  },
  modules: {
  }
})
